Выражение | expression
Тип функции expression (выражение) вычисляется на этапе разбора строки
(парсинга) и не приводят к изменениям состояния игры.
Выражения могут входить в состав других сложных выражений, фактов или действий.
Выражение возвращает вычисленное значение. Если вся строка является одним
выражением, то вычисленное значение будет финальным результатом всей строки. цвет стен количество людей в комнате некто, взявший 3 рубля Пример функции выражения:
// атрибуты
expression(attribute Atr, object Ob)
{
-- parsing --
if :Ob.key != :Atr.key then fail, "несогласовано"
Ok
-- execute --
if :Ob.:Atr then return :Ob
fail, "тут такого нет"
}
Секции в выраженияхВ выражениях допускаются секции: parsing (парсинг) execute (выполнение) Секция parsing (парсинг)Секция универсальна для всех типов функций. Смотрите описание в разделе Парсерные функции. Секция execute (выполнение)
Секция execute (выполнение) в выражениях вычисляет значение выражения.
В выражениях cекция execute (выполнение) исполняется на этапе парсинга, из чего
следует:
1. Выполнение этой секции может происходить многократно;
2. Результат выражения может быть вариантным;
3. В этой секции нельзя менять состояния объектов и переменных
(за исключением переменных самой функции);
4. Результат выражения влияет на дальнейший парсинг команды.
выражение (среднее, число А, число Б)
{
-- выполнение --
(А + Б)/2
}
В данном примере функция вычисляет среднее значение двух чисел.
Обращаться к функции из кода можно следующим образом. X = среднее 4 5 A = 2 Б = 7 Y = среднее А Б //переменные А и Б должны содержать числа Смотрите такжеSystem_GetState, System states, System state value class |
to do: Отформатировать. Проверить корректность. Нужны пояснения к примерам. Дополнить. |